﻿// -----------------------------------------------------------------------
// <copyright file="Dictionary.cs" company="">
// Nico König 2014
// </copyright>
// -----------------------------------------------------------------------

namespace SpaceshipDuel
{
    /// <summary>
    /// Struktur für die Wörterbucheinträge
    /// erstmal nur für deutsch und englisch
    /// </summary>
    public struct DictEntry
    {
        public DictEntry (string refStr, string gerStr, string engStr)
        {
            referenceString = refStr;
            germanString    = gerStr;
            englishString   = engStr;
        }

        public string referenceString;
        public string germanString;
        public string englishString;
    }

    /// <summary>
    /// Statische Wörterbuch-Klasse zur Übersetzung aller Texte auf der GUI
    /// </summary>
    public static class Dictionary
    {
        #region Private fields

        private static DictEntry[] myDictionary;    // Wörterbuch

        #endregion Private fields

        #region Construction

        /// <summary>
        /// statischer Konstruktor
        /// </summary>
        static Dictionary()
        {
            // Definition aller Übersetzungen - könnte man auch in eine eigene Datei/Datenbank auslagern
            // wenn die Anzahl höher wäre, aber für diese Anwendung wäre es wohl etwas übertrieben
            myDictionary = new DictEntry[]
            {
                new DictEntry("Leben: ", "Leben: ", "Lives:"), 
                new DictEntry("Schild: ", "Schild: ", "Shield:"), 
                new DictEntry("Waffenlevel: ", "Waffenlevel: ", "Weapon level: "), 
                new DictEntry("Antriebslevel: ", "Antriebslevel: ", "Propulsion level: "), 
                new DictEntry("Spezialwaffe: ", "Spezialwaffe: ", "Special weapon: "), 
                new DictEntry("Streubombe", "Streubombe", "Scatter bomb"), 
                new DictEntry("Warpsprung", "Warpsprung", "Warp jump"), 
                new DictEntry("Atomrakete", "Nukularrakete", "Nucular missile"), 
                new DictEntry("Schild-Regeneration", "Schild-Regeneration", "Shield regeneration"),
                new DictEntry("Lade Daten...", "Lade Daten...", "loading data..."),
                //new DictEntry("", "", ""), 
            };
        }

        #endregion Construction

        #region Public methods

        /// <summary>
        /// Abfrage eines übersetzten Strings
        /// </summary>
        /// <param name="referenceString">Referenzstring</param>
        /// <param name="Language">Sprache</param>
        /// <returns>Übersetzter String</returns>
        public static string GetTranslation(string referenceString, string Language)
        {
            if (Language != "Deutsch" && Language != "English")
                return "Language missing";

            foreach (DictEntry de in myDictionary)
            {
                if (de.referenceString == referenceString)
                {
                    if (Language == "Deutsch")
                        return de.germanString;
                    if (Language == "English")
                        return de.englishString;
                }
            }
            return "Translation missing";   // falls Übersetzung nicht vorhanden ist
        }

        #endregion Public methods
    }
}
